namespace SharpTalk.Core.Data
{
    using System;
    using System.Collections.Generic;

    public interface IUserDataProvider : IDataProvider<User>
    {
        void TrackUserChanges(Guid tracked, Guid tracker);
        void TrackUserChanges(User tracked, User tracker);
        void TrackUserChanges(Guid tracked, IEnumerable<Guid> trackers);
        void TrackUserChanges(User tracked, IEnumerable<User> trackers);
        void TrackUserChanges(IEnumerable<Guid> tracked, Guid tracker);
        void TrackUserChanges(IEnumerable<User> tracked, User tracker);
        List<User> GetUserTrackingList(Guid tracked);
        List<User> GetUserTrackingList(User tracked);
    }
}